What is @babel/plugin-proposal-async-generator-functions?
The @babel/plugin-proposal-async-generator-functions package is a Babel plugin that allows you to use async generator functions and for-await-of loops in your JavaScript code, which are part of the ECMAScript 2018 (ES9) specification. This plugin transforms async generator functions and for-await-of loops into code that can run in environments that do not support these features natively.
What are @babel/plugin-proposal-async-generator-functions's main functionalities?
Async Generator Functions
This feature allows you to define asynchronous generator functions using the async function* syntax. These functions can yield values using the yield keyword, and they return an AsyncIterator which can be used with for-await-of loops.
async function* asyncGenerator() {
var i = 0;
while (i < 3) {
yield i++;
}
}
For-Await-Of Loops
This feature enables you to iterate over AsyncIterables using a for-await-of loop. The loop will wait for each promise returned by the AsyncIterable to resolve before continuing to the next iteration.
async function iterateAsyncGenerator() {
for await (const value of asyncGenerator()) {
console.log(value);
}
}
Other packages similar to @babel/plugin-proposal-async-generator-functions
regenerator-runtime
The regenerator-runtime package provides a runtime for Regenerator-compiled generator and async functions. It is similar to @babel/plugin-proposal-async-generator-functions in that it allows you to use generators and async functions in environments that do not support them natively. However, it is a runtime library rather than a compile-time Babel plugin.
babel-preset-env
babel-preset-env is a Babel preset that includes various plugins to transpile modern JavaScript to backwards-compatible versions. It includes plugins for async functions and generators, similar to @babel/plugin-proposal-async-generator-functions, but it is more comprehensive as it covers a wider range of JavaScript features and proposals.
@babel/plugin-proposal-async-generator-functions
Turn async generator functions into ES2015 generators
See our website @babel/plugin-proposal-async-generator-functions for more information.
Install
Using npm:
npm install --save-dev @babel/plugin-proposal-async-generator-functions
or using yarn:
yarn add @babel/plugin-proposal-async-generator-functions --dev